info1 = "D:\tools\noco"
info2 = r"D:\tools\noco"
info3 = "D:\\tools\\noco"
info4 = '张三说："你很厉害"'
print(info1) # 字符串中有转义字符，不能原样输出
print(info2)
print(info3)
print(info4)
# \n 表示换行
# \t 表示执行TAB
# 问题1：路径想原样输出,在字符串外面添加字母 r(info2)，或者在有转义字符的地方添加 \(info3)
# 问题2：字符串中本身存在单双引号的情况，需要交叉输入引号(info4)

# 1.通过位置（下标）找元素
# 定义变量
info = "abcdefg"
# 获取字母d
print(info[3])
# print(info[‐4])
# 2.通过元素找位置（下标）
print(info.find("e"))
print(info.find("k")) # 如果找不到返回‐1


# 字符串替换
# 定义字符串
info = "金三胖同志被称之为世界最成功的80后，金三胖真牛！"
# 使用字符串（替换）
info1 = info.replace("金三胖","马赛克")
print(info1)
print(info)
# 结论：字符串不可变数据类型，进行替换操作之后，原有的字符串不发生变化


# 字符串连接
# 定义变量
info = ['Python', 'Java', 'PHP']
num = [11, 22, 33]
# 连接
info1 = " and ".join(info)
# num1 = " and ".join(num)
print(info1)
# print(num1)
print(type(info1))

# print("‐".join(num)) # 序列中如果不是字符元素，报错
# 结论：通过连接字符将列表/元组/集合对应字符元素才能连接成字符串


# 字符串拆分
# 定义SQL语句变量
sql = "select * from students where id = 001;"
# 上述SQL语句按照空格把语句中的单词拆分出来

print(sql.split()) # 结果类型是列表
# 在上述基础上把每个单词打印出来

for i in sql.split(): # 对应容器中元素的获取直接使用for循环即可
    print(i,end=" ")
print()
# 上述SQL按照where拆分出来
print(sql.split("where")) # 括号里面的字符叫分隔符

# 总结
# 1.通过split拆分后，结果是列表类型
# 2.如果split中不输入分隔符，默认按照空格拆分

# 字符串去除两头空格、大小写转换、查询判断某个字符出现的次数、判断是否是字母/数字【注意：字符串中不能出现空格】
# 1.去除字符串两头的空格
phone = " 13800000001 "
print(phone)
print(phone.strip())
# 2.大小写转换
# 转大写：字符串.upper()
# 转小写：字符串.lower()
info = "aBcDeFg"
print(info.upper())
print(info.lower())

print(info.isalpha())
print(info.isdigit())
info = "123"
print(info.isdigit())


# 定义SQL语句变量
sql = "select * from students where id = 001;"
# 判断是否是查询（select是否存在）
if "select" in sql.lower():
    print("对的对的")
else:
    print("不对不对")